package com.cma.util;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeanUtils;



/** 
 * @author 作者 :hbb 
 * @version 创建时间：2016-4-21 上午9:31:37 
 * 类说明 beanList 转换
 */

public class BeansUtil {
	private static Log logger = LogFactory.getLog(BeansUtil.class);
	@SuppressWarnings("unchecked")
	
	/**
	 * obj为起始数据，v为目标数据类型，返回数据为目标数据类型的集合
	 * @param obj
	 * @param v
	 * @return
	 */
	public static <V, T> List<V>  conversionTtoYforList(List<T> obj,V v) {
		List<V> obj2=new ArrayList<V>();
		if(obj!=null&&!obj.isEmpty()){
			for (T t : obj) {
				try {
					v=(V) v.getClass().newInstance();
				} catch (Exception e) {
					logger.error(e);
				}
				try {
					BeanUtils.copyProperties(t,v);
				} catch (Exception e) {
					logger.error(e);
				}
				obj2.add(v);
			}
			return obj2;
		}else{
			return obj2;
			
		}
	}
	/**
	 * 该方法不需要再方法上new对象，只需将该类class就行了
	 * @param obj
	 * @param clas
	 * @return
	 */
	public static <T,V> List<V>  conversionTtoforList(List<T> obj,Class<V> clas) {
		List<V> obj2=new ArrayList<V>();
		V v = null;
		if(obj!=null&&!obj.isEmpty()&&obj.size()>0){
			for (T t : obj) {
				try {
				 v=clas.newInstance();
				} catch (Exception e) {
					logger.error(e);
				}
				try {
					BeanUtils.copyProperties(t,v);
				} catch (Exception e) {
					logger.error(e);
				}
				obj2.add(v);
			}
			return obj2;
		}else{
			return obj2;
			
		}
	}
	/*public static void main(String[] args){
		List<AuctionNotice> list=new ArrayList<AuctionNotice>();
		for(int i=1;i<3;i++){
			AuctionNotice a=new AuctionNotice();
			a.setAddress("a"+i);
			list.add(a);
		}
		List<DAuctionNotice> result= conversionTtoforList(list,DAuctionNotice.class);
		System.out.println(result.get(0).getAddress());
	}*/
	
}
